const http = require('http');
/**
 * 实现用户访问次数统计功能
 * 1.当客户端第1次访问服务器的时候，服务器会返回1，并且会向客户端种植cookie visit=1
 * 2.客户端收到这个cookie后会保存在浏览器的内部
 * 3.以后每当客户端发送cookie给服务器的时候，就会发送visit=1
 * 4.服务器收到此cookie,可以加1，变成2，然后再把visit=2发回客户端保存
 */
http.createServer((req,res)=>{
    //req请求对象 res响应对象
    //服务器向客户端种植cookie Set-Cookie
    //客户端向服务器发送cookie Cookie
    //获取请求头中的cookie
    if(req.url === '/'){
        //先获取请求头中的cookie
        let cookies = req.headers.cookie;
        //定义一个访问次数的变量，默认值是0
        let visit = 0;
        //如果客户端把cookie传递过来了
        //visit=22; age=18;   visit=23; visit=244
        if(cookies){
            //提取visit的值  visit=1
            //先把cookie按=分割成二段，变成['visit','1']
            //如果有多个cookie的，格式是 key1=value1; key2=value2
            //使用正则匹配我们想要的visit的值
            let result = cookies.match(/visit=([^;]*)/);
            if(result)
                visit = Number(result[1]);
        }
        //然后让访问次数加1
        visit++;
        //向客户端种植cookie
        res.setHeader('Set-Cookie',[`visit=${visit}`]);
        //为了防止中文出现乱码，告诉 客户端我现在的中文使用的是utf-8编码
        res.setHeader('Content-Type','text/plain;charset=UTF-8');
        //告诉客户端这是第几次访问
        res.end(`这是你的第${visit}次访问`);
    }else{
        res.end('Not Found');
    }
    

}).listen(8080,()=>console.log('server is started on port 8080'));
/**
1.
const multipleCookies = cookies.split('; ');
const result = multipleCookies.find((cookie)=>{
    const [key,value] = cookie.split('=');
    if(key === 'visit'){
        return true;
    }
});

 let result = cookies.match(/visit=([^;]*)/);
            visit = Number(result[1]);

 */